// 做一个映射关系
let formFunc = {
  mobile: mobileTest,
  password: passwordTest,
  empty: emptyTest
}

/**
 * 
 * @param {} arr 
 * 传过来的arr为一个数组，
 * 里面的内容为[校验类型, 校验的值, 不通过时的错误提示]，
 * 校验类型通过formFunc和下面的校验方法做映射。
 */

export default function testInfo(arr){
  let errInfo = true;
  // console.log(arr);
  for(let i = 0; i < arr.length; i ++) {
    // console.log(arr[i], i)
    if(arr[i]!==undefined && arr[i]!==null){
      let item = arr[i],
      [type='empty', val, msg] = item,
      testRes = formFunc[type](val, msg);
      if(testRes!==true){
        errInfo = testRes;
        break;
      }
    } else {
      throw Error('验证格式有误，请使用testInfo[["empty", name, "用户名"],["mobile", mobile]]')
      // errInfo = 
    }

  }
  return errInfo
}

function mobileTest(val, err = "手机格式输入有误"){
  return /^1(3|4|5|6|7|8|9)\d{9}$/.test(val) || err || '手机格式输入有误'
}

function passwordTest(val, err = "密码长度应在6-20位") {
  return /^.{6,20}$/.test(val) || err
}

function emptyTest(val, err = "必填项") {
  if(val===undefined || val===null || val.length === 0 ){
    return err + '不能为空'
  }else{
    return true
  }
}